#include<iostream>
#include<bits/stdc++.h>
//#include<deque>
using namespace std;
long int a[1000000];
deque<long int> mins;
deque<long int> maxs;
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=0;i<n;i++)
		cin>>a[i];
		
		
	for(int i=0;i<n;i++){
		if(i>=m&&mins.front()==a[i-m])
			mins.pop_front();
		while(mins.size()>0&&mins.back()>a[i]){
			mins.pop_back();
		}
			mins.push_back(a[i]);
		if(i>=m-1){
			cout<<mins.front();
			if(i<n-1)
			cout<<' ';
		}
	}
	cout<<endl;
	
	for(int i=0;i<n;i++){
		if(i>=m&&maxs.front()==a[i-m])
			maxs.pop_front();
		while(maxs.size()>0&&maxs.back()<a[i]){
			maxs.pop_back();
		}
		maxs.push_back(a[i]);
		if(i>=m-1){
			cout<<maxs.front();
			if(i<n-1)
			cout<<' ';
		}
	}
}


//#include<iostream>
//#include<bits/stdc++.h>
//#include<deque>
//using namespace std;
//long int a[1000000];
//deque<long int> mins;
//deque<long int> maxs;
//int main(){
//	int n,m;
//	cin>>n>>m;
//	for(int i=0;i<n;i++)
//		cin>>a[i];
//	for(int i=0;i<n;i++){
//		if(mins.front()==a[i-m])
//			mins.pop_front();
//		while(mins.size()>0&&mins.back()>a[i]){
//			mins.pop_back();
//		}
//			mins.push_back(a[i]);
//		if(i>=m-1){
//			cout<<mins.front();
//			if(i<n-1)
//			cout<<' ';
//		}
//	}
//	cout<<endl;
//	for(int i=0;i<n;i++){
//		if(maxs.front()==a[i-m])
//			maxs.pop_front();
//		while(maxs.size()>0&&maxs.back()<a[i]){
//			maxs.pop_back();
//		}
//		maxs.push_back(a[i]);
//		if(i>=m-1){
//			cout<<maxs.front();
//			if(i<n-1)
//			cout<<' ';
//		}
//	}
//}
